Skip to content

Add Selenium regression test for list audit detail#3048

Open
labkey-bpatel wants to merge 1 commit into
release25.7-SNAPSHOTfrom
25.7_fb_owasp_lists_audit
Open

Add Selenium regression test for list audit detail#3048
labkey-bpatel wants to merge 1 commit into
release25.7-SNAPSHOTfrom
25.7_fb_owasp_lists_audit

Conversation

@labkey-bpatel

@labkey-bpatel labkey-bpatel commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Rationale

OWASP Finding: _list container-resolved, but rendered old/new maps from AuditLogService.getAuditEvent(user, LIST_AUDIT_EVENT, rowId) global (cf=null); event never tied to list, event.getContainer() unchecked

See Related PR

Related Pull Requests

Changes

  • New testAuditDetailRejectsRowIdFromOtherList regression test that fires the cross-list-IDOR attack URL against a real audit event and asserts non-disclosure + matched-listId still renders.

Tasks 📍

  • Claude Code Review
  • TeamCity verification

}

/**
* CWE-639 (IDOR): a list audit event loaded by user-controlled rowId in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: This comment could just be a reference to the kanban issue.

@labkey-tchad labkey-tchad left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One nit

Comment on lines +885 to +888
_listHelper.createList(getProjectName(), LIST_X, "Key",
new FieldDefinition(NAME_FIELD, ColumnType.String));
_listHelper.createList(getProjectName(), LIST_Y, "Key",
new FieldDefinition(NAME_FIELD, ColumnType.String));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the ListHelper to create the lists adds a bunch of unnecessary UI interaction. The API helper will speed this up a ton.

Suggested change
_listHelper.createList(getProjectName(), LIST_X, "Key",
new FieldDefinition(NAME_FIELD, ColumnType.String));
_listHelper.createList(getProjectName(), LIST_Y, "Key",
new FieldDefinition(NAME_FIELD, ColumnType.String));
Connection connection = createDefaultConnection();
new IntListDefinition(LIST_X, "Key")
.addField(new FieldDefinition(NAME_FIELD, ColumnType.String))
.create(connection, getProjectName());
new IntListDefinition(LIST_Y, "Key")
.addField(new FieldDefinition(NAME_FIELD, ColumnType.String))
.create(connection, getProjectName());

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants